130. Surrounded Regions - LeetCode Solution


Depth-first Search

Python Code:

class Solution:
    def solve(self, board: List[List[str]]) -> None:
        def Erase(rid, cid):
            if rid < 0 or cid < 0 or rid > len(board) -1 or cid > len(board[0]) -1 or board[rid][cid] in ('X', 'E'):
                return
            board[rid][cid] = 'E'
            Erase(rid-1, cid)
            Erase(rid+1, cid)
            Erase(rid, cid-1)
            Erase(rid, cid+1)
            
            
        for rid, row in enumerate(board):
            for cid, column in enumerate(row):
                if rid == 0 or cid == 0 or rid == len(board) -1 or cid == len(board[0])-1:
                    if board[rid][cid] == 'O':
                        Erase(rid, cid)
    
        for rid, row in enumerate(board):
            for cid, column in enumerate(row):
                if board[rid][cid] == 'O':
                    board[rid][cid] = 'X'
                if board[rid][cid] == 'E':
                    board[rid][cid] = 'O'


Comments

Submit
0 Comments
More Questions

1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins
1227A - Math Problem
349A - Cinema Line
47A - Triangular numbers
1516B - AGAGA XOOORRR
1515A - Phoenix and Gold
1515B - Phoenix and Puzzle
155A - I_love_username
49A - Sleuth
1541A - Pretty Permutations